/*
 * Copyright the original author or authors.
 * 
 * Licensed under the MOZILLA PUBLIC LICENSE, Version 1.1 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.mozilla.org/MPL/MPL-1.1.html
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package net.pixlib.sfe.structure 
{
	import net.pixlib.core.ValueObject;
	import net.pixlib.utils.HashCodeFactory;

	/**
	 * Font properties data structure.
	 * 
	 * @author Romain Ecarnot
	 */
	public class FontProperties implements ValueObject
	{
		//--------------------------------------------------------------------
		// Public properties
		//--------------------------------------------------------------------
				
		/** Font unique identifier for model management. */
		public var id : String = "Font_" + HashCodeFactory.getNextKey();

		/** Font file path. */
		public var path : String = "";

		/** Font name (identifier for Actionscript use) */
		public var name : String = ""; 

		/** Font 'bold' property. */
		public var bold : Boolean = false; 

		/** Font 'italic' property. */
		public var italic : Boolean = false; 
		
		[ArrayElementType("int")]
		/** Font characters unicode ranges. */
		public var unicode : Array = [];
		
		
		//--------------------------------------------------------------------
		// Public API
		//--------------------------------------------------------------------
		
		/**
		 * Copies passed-in font property into this font structure.
		 */
		public function copyProperties(source : FontProperties) : void
		{
			path = source.path; 			name = source.name; 			bold = source.bold; 			italic = source.italic; 			unicode = source.unicode.concat([]); 		}  
	}
}
